Telegram Group & Telegram Channel
🧡 RAII β€” Π³Π»Π°Π²Π½Ρ‹ΠΉ сСкрСт устойчивого ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ C++ ΠΊΠΎΠ΄Π°

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! БСгодня Ρ…ΠΎΡ‡Ρƒ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ бСзопасный ΠΈ устойчивый C++ ΠΊΠΎΠ΄ β€” это RAII (Resource Acquisition Is Initialization).

RAII β€” это ΠΈΠ΄ΠΈΠΎΠΌΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Ρ…Π²Π°Ρ‚ рСсурса (Ρ„Π°ΠΉΠ», сокСт, ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΌΡŒΡŽΡ‚Π΅ΠΊΡ) происходит Π² конструкторС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° освобоТдСниС β€” Π² дСструкторС. Благодаря этому рСсурсы ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ автоматичСски, Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


#include <fstream>

void saveData(const std::string& filename) {
std::ofstream file(filename); // ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°
if (!file.is_open())
throw std::runtime_error("Cannot open file");

file << "some data"; // Ρ„Π°ΠΉΠ» закроСтся автоматичСски
}


RAII Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π²ΠΎΠΉ ΠΊΠΎΠ΄:
βœ… БСзопасным ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ
βœ… Устойчивым ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌ
βœ… Π›Ρ‘Π³ΠΊΠΈΠΌ для чтСния ΠΈ сопровоТдСния

πŸ’‘ Π‘ΠΎΠ²Π΅Ρ‚: всСгда ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΠΉ "Ρ€ΡƒΡ‡Π½Ρ‹Π΅" рСсурсы Π² ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΈ β€” std::unique_ptr, std::lock_guard, std::ofstream, std::thread ΠΈ Ρ‚.Π΄.


➑️ @cpp_geek



tg-me.com/cpp_geek/295
Create:
Last Update:

🧡 RAII β€” Π³Π»Π°Π²Π½Ρ‹ΠΉ сСкрСт устойчивого ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ C++ ΠΊΠΎΠ΄Π°

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! БСгодня Ρ…ΠΎΡ‡Ρƒ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅, Π±Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ бСзопасный ΠΈ устойчивый C++ ΠΊΠΎΠ΄ β€” это RAII (Resource Acquisition Is Initialization).

RAII β€” это ΠΈΠ΄ΠΈΠΎΠΌΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Ρ…Π²Π°Ρ‚ рСсурса (Ρ„Π°ΠΉΠ», сокСт, ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΌΡŒΡŽΡ‚Π΅ΠΊΡ) происходит Π² конструкторС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° освобоТдСниС β€” Π² дСструкторС. Благодаря этому рСсурсы ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡŽΡ‚ΡΡ автоматичСски, Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


#include <fstream>

void saveData(const std::string& filename) {
std::ofstream file(filename); // ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°
if (!file.is_open())
throw std::runtime_error("Cannot open file");

file << "some data"; // Ρ„Π°ΠΉΠ» закроСтся автоматичСски
}


RAII Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π²ΠΎΠΉ ΠΊΠΎΠ΄:
βœ… БСзопасным ΠΊ ΡƒΡ‚Π΅Ρ‡ΠΊΠ°ΠΌ
βœ… Устойчивым ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌ
βœ… Π›Ρ‘Π³ΠΊΠΈΠΌ для чтСния ΠΈ сопровоТдСния

πŸ’‘ Π‘ΠΎΠ²Π΅Ρ‚: всСгда ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΠΉ "Ρ€ΡƒΡ‡Π½Ρ‹Π΅" рСсурсы Π² ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΈ β€” std::unique_ptr, std::lock_guard, std::ofstream, std::thread ΠΈ Ρ‚.Π΄.


➑️ @cpp_geek

BY C++ geek




Share with your friend now:
tg-me.com/cpp_geek/295

View MORE
Open in Telegram


C geek Telegram | DID YOU KNOW?

Date: |

Pinterest (PINS) Stock Sinks As Market Gains

Pinterest (PINS) closed at $71.75 in the latest trading session, marking a -0.18% move from the prior day. This change lagged the S&P 500's daily gain of 0.1%. Meanwhile, the Dow gained 0.9%, and the Nasdaq, a tech-heavy index, lost 0.59%. Heading into today, shares of the digital pinboard and shopping tool company had lost 17.41% over the past month, lagging the Computer and Technology sector's loss of 5.38% and the S&P 500's gain of 0.71% in that time. Investors will be hoping for strength from PINS as it approaches its next earnings release. The company is expected to report EPS of $0.07, up 170% from the prior-year quarter. Our most recent consensus estimate is calling for quarterly revenue of $467.87 million, up 72.05% from the year-ago period.

The SSE was the first modern stock exchange to open in China, with trading commencing in 1990. It has now grown to become the largest stock exchange in Asia and the third-largest in the world by market capitalization, which stood at RMB 50.6 trillion (US$7.8 trillion) as of September 2021. Stocks (both A-shares and B-shares), bonds, funds, and derivatives are traded on the exchange. The SEE has two trading boards, the Main Board and the Science and Technology Innovation Board, the latter more commonly known as the STAR Market. The Main Board mainly hosts large, well-established Chinese companies and lists both A-shares and B-shares.

C geek from kr


Telegram C++ geek
FROM USA